#ifndef COMUNICADORGRAFICOSERVIDOR_H_INCLUDED
#define COMUNICADORGRAFICOSERVIDOR_H_INCLUDED

#include "Comunicador.h"
#include "GraficoIntel.h"
#include <string>
#include "Thread.h"
#include "MyException.h"
#include <syslog.h>
#include "const.h"

class ComunicadorGraficoServidor:public Thread{
    private:
    GraficoIntel& GI;
    std::string IPServ;
    int PuertoEspecial;
    Comunicador Messenger;
    bool working;
    void EmpezarComunicacion()
    {
        int ret = this->Messenger.conectar( this->PuertoEspecial, this->IPServ.c_str() );
        if ( ret < 0 ){throw MyException("no se pudo establecer conexion");}
    }

    public:
    ComunicadorGraficoServidor( GraficoIntel& GI
                        ,const std::string& IPServ
                        ,int PuertoEspecial ):
                        GI(GI),IPServ(IPServ),PuertoEspecial(PuertoEspecial),
                        working(false)
    {}

    ~ComunicadorGraficoServidor(){}

    void DetenerComunicacion()
    {
       this->Messenger.cerrarComunicacion();
    }

    bool is_running(){return this->working;}

    void run();

};

#endif // COMUNICADORGRAFICOSERVIDOR_H_INCLUDED
